iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
Python

30天Python學習之旅系列 第 9

Day 9 : 鍵值對數據結構 ( 字典 )

  • 分享至 

  • xImage
  •  

今天要學習的是Python 中的一個重要的數據結構——字典 ( Dictionary )。字典是一種無序的、可變的數據結構,允許我們通過鍵 ( key ) 來存取與其對應的值 ( value )。相比列表,字典的查詢速度更快,特別適合需要通過唯一標識符進行快速檢索的情境。

1. 字典的基本概念

字典是一個無序的集合,它使用鍵 ( key )值 ( value ) 來儲存數據。每個鍵必須是唯一的,並且通常是不可變的 ( 例如字符串或數字 ),而值則可以是任意類型的數據。字典使用大括號 {} 定義,並且鍵值對之間用冒號 : 分隔,不同的鍵值對則用逗號分開。

創建字典
https://ithelp.ithome.com.tw/upload/images/20240922/20169078MN3x0MrVUA.png
在這個字典中,"name" 是鍵,"Kate" 是它的值,其他鍵值對也是如此。

2. 訪問與修改字典中的數據

字典中的值可以通過鍵來訪問,並且可以隨時修改或新增鍵值對。
訪問值
https://ithelp.ithome.com.tw/upload/images/20240922/20169078S79uhSgDVF.png

修改值
將年齡修改為 28
https://ithelp.ithome.com.tw/upload/images/20240922/20169078xb0qBKLV5I.png

新增鍵值對
新增居住城市:臺北Taipei
https://ithelp.ithome.com.tw/upload/images/20240922/20169078orHdcBByl5.png

刪除鍵值對
使用 del 來刪除字典中的某個鍵值對。
https://ithelp.ithome.com.tw/upload/images/20240922/20169078SEcSdNmuXe.png

3. 字典的特性

字典有一些值得注意的特性:
無序性:在 Python 3.6 之前,字典是無序的,鍵值對的順序不可預測。然而從 Python 3.7 開始,字典保留了插入順序,即元素會按照插入的順序儲存。
可變性:字典可以動態地新增、刪除和修改內容。
唯一性:字典中的鍵是唯一的,不能出現重複的鍵。如果新增一個已有的鍵,則該鍵的值會被覆蓋。

4. 字典常用的內建方法

Python 提供了許多有用的字典操作方法,這些方法能夠幫助我們更靈活地操作字典。

keys():返回字典中所有的鍵。
程式碼:
print(my_dict.keys()) # 輸出 dict_keys(['name', 'age', 'city'])

values():返回字典中所有的值。
https://ithelp.ithome.com.tw/upload/images/20240922/20169078qlJw4Lxkd4.png

items():返回字典中的所有鍵值對。
https://ithelp.ithome.com.tw/upload/images/20240922/20169078kwnYBCY9Ic.png

get():安全地獲取鍵對應的值,如果鍵不存在,返回默認值( 不會拋出錯誤 )。
若沒有此鍵,就會顯示"Not Found"
https://ithelp.ithome.com.tw/upload/images/20240922/20169078Q9zp6i0AS5.png

update():將另一個字典或鍵值對更新到當前字典中。
https://ithelp.ithome.com.tw/upload/images/20240922/20169078q1lsx0NrN9.png

pop():刪除指定鍵並返回其值,如果鍵不存在則拋出錯誤。
https://ithelp.ithome.com.tw/upload/images/20240922/20169078jqGqVPVjuI.png

5. 字典的應用場景

字典特別適合用於以下場景:
查詢數據:例如:儲存用戶資料、商品目錄,根據唯一鍵(如用戶 ID 或商品名稱)來查找對應的數據。
計數:利用字典來計算元素的出現次數,例如計算一篇文章中每個單詞出現的次數。
https://ithelp.ithome.com.tw/upload/images/20240922/20169078992mElN2NS.png

字典是通過鍵值對儲存和快速查詢數據。今天學習了如何創建、訪問和修改字典,以及一些常用的內建方法,字典在處理結構化數據、快速查找和統計計數等場景中非常的有效率。在學習的過程中,程式碼的紅字一直無法解決,是因為我沒有去掉縮排,所以導致程式碼不能執行,最後有順利的解決這個小問題,總而言之,我還不夠熟悉之前學過的內容,希望持續的學習能之後,能讓我對於使用Python更加地熟練,明天繼續加油!Fighting!


上一篇
Day 8 : 基本數據結構( 列表、元組與集合)
下一篇
Day 10 : 理解與應用 Python 的檔案操作
系列文
30天Python學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言